Optional Chaining
TypeScript3.7から入った演算子
今まで以下のように書いていたもののショートハンドのシンタックス
code:ts
const x = foo != null && foo.bar != null && foo.bar.baz() // いままで
const x = foo?.bar?.baz() // use OptionalChaining
JSにコンパイルするときは今まで通り
簡潔にかけて嬉しい!
もちろんstrictNullChecks: trueじゃないと、元々エラーにならない
関数呼び出しにも使える
code:ts
add?.(2, 3)
確かにエラーで「TypeError: "hogehoge" is not a function」よくみるもんなmrsekut.icon
Nullish Coalescing演算子と組み合わせて、以下のように書ける
const x = foo?.bar?.baz() ?? 'baz'
React Navigation v4のgetParams()みたいな使い心地
配列に対しても使える
?.[]
Swiftにもある
http://blogios.stack3.net/swift/optional-chaining
参考
そろそろJavaScriptに採用されそうなOptional Chainingを今さら徹底解説 - Qiita
他言語についても、詳しい
https://github.com/microsoft/TypeScript/pull/33294
https://devblogs.microsoft.com/typescript/announcing-typescript-3-7-beta/
https://qiita.com/102Design/items/5f23f47f478ff845e3af
https://speakerdeck.com/texdeath/optional-chainingnituite?slide=8
https://qiita.com/102Design/items/5f23f47f478ff845e3af